<Project Sdk="Microsoft.NET.Sdk">

  <PropertyGroup>
    <TargetFrameworks>$(NetCoreAppCurrent);$(NetCoreAppPrevious);$(NetCoreAppMinimum);netstandard2.0;$(NetFrameworkMinimum)</TargetFrameworks>
    <IsPackable>true</IsPackable>
    <PackageDescription>APIs to help manage rate limiting.

Commonly Used Types:
System.Threading.RateLimiting.RateLimiter
System.Threading.RateLimiting.ConcurrencyLimiter
System.Threading.RateLimiting.TokenBucketRateLimiter
System.Threading.RateLimiting.RateLimitLease</PackageDescription>
  </PropertyGroup>

  <ItemGroup>
    <Compile Include="System\Threading\RateLimiting\ChainedPartitionedRateLimiter.cs" />
    <Compile Include="System\Threading\RateLimiting\ConcurrencyLimiter.cs" />
    <Compile Include="System\Threading\RateLimiting\ConcurrencyLimiterOptions.cs" />
    <Compile Include="System\Threading\RateLimiting\DefaultPartitionedRateLimiter.cs" />
    <Compile Include="System\Threading\RateLimiting\FixedWindowRateLimiter.cs" />
    <Compile Include="System\Threading\RateLimiting\FixedWindowRateLimiterOptions.cs" />
    <Compile Include="System\Threading\RateLimiting\MetadataName.cs" />
    <Compile Include="System\Threading\RateLimiting\MetadataName.T.cs" />
    <Compile Include="System\Threading\RateLimiting\NoopLimiter.cs" />
    <Compile Include="System\Threading\RateLimiting\PartitionedRateLimiter.cs" />
    <Compile Include="System\Threading\RateLimiting\PartitionedRateLimiter.T.cs" />
    <Compile Include="System\Threading\RateLimiting\QueueProcessingOrder.cs" />
    <Compile Include="System\Threading\RateLimiting\RateLimiter.cs" />
    <Compile Include="System\Threading\RateLimiting\RateLimiterStatistics.cs" />
    <Compile Include="System\Threading\RateLimiting\RateLimitLease.cs" />
    <Compile Include="System\Threading\RateLimiting\RateLimitPartition.cs" />
    <Compile Include="System\Threading\RateLimiting\RateLimitPartition.T.cs" />
    <Compile Include="System\Threading\RateLimiting\ReplenishingRateLimiter.cs" />
    <Compile Include="System\Threading\RateLimiting\SlidingWindowRateLimiter.cs" />
    <Compile Include="System\Threading\RateLimiting\SlidingWindowRateLimiterOptions.cs" />
    <Compile Include="System\Threading\RateLimiting\System.Threading.RateLimiting.Typeforwards.netcoreapp.cs" />
    <Compile Include="System\Threading\RateLimiting\TimerAwaitable.cs" />
    <Compile Include="System\Threading\RateLimiting\TokenBucketRateLimiter.cs" />
    <Compile Include="System\Threading\RateLimiting\TokenBucketRateLimiterOptions.cs" />
    <Compile Include="$(CommonPath)System\Collections\Generic\Deque.cs" Link="Common\System\Collections\Generic\Deque.cs" />
    <Compile Include="System\Threading\RateLimiting\TranslatingLimiter.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFrameworkIdentifier)' != '.NETCoreApp'">
    <Compile Remove="System\Threading\RateLimiting\System.Threading.RateLimiting.Typeforwards.netcoreapp.cs" />
    <Compile Include="$(CoreLibSharedDir)System\Runtime\CompilerServices\IsExternalInit.cs" Link="Common\System\Runtime\CompilerServices\IsExternalInit.cs" />
  </ItemGroup>

  <ItemGroup Condition="'$(TargetFrameworkIdentifier)' != '.NETCoreApp'">
    <PackageReference Include="System.Threading.Tasks.Extensions" Version="$(SystemThreadingTasksExtensionsVersion)" />
    <ProjectReference Include="$(LibrariesProjectRoot)Microsoft.Bcl.AsyncInterfaces\src\Microsoft.Bcl.AsyncInterfaces.csproj" />
  </ItemGroup>

</Project>
